Skip Headers

Oracle Procedural Gateway® for APPC User's Guide 10g Release 2 (10.2) for UNIX Part Number B16210-01 |
Home | Book List | Contents | Index | Master Index | Feedback

Previous | Next
| View PDF

# 8 Problem Determination

This chapter discusses diagnostic techniques and aids for determining and resolving problems with data conversion, truncation, and conversation startup. It also describes how to collect the data when the debugging (trace) option is on.

You will want to trace the PL/SQL stored procedures only when you suspect problems. Do not run with tracing enabled during normal operations, because it will affect performance.

This chapter contains the following sections:

- "TIP Definition Errors"

- "Problem Analysis with PG DD Diagnostic References"

- "Problem Analysis with PG DD Select Scripts"

- "Data Conversion Errors"

- "Problem Analysis of Data Conversion and Truncation Errors"

- "Problem Analysis with TIP Runtime Traces"

- "TIP Runtime Trace Controls"

- "Suppressing TIP Warnings and Tracing"

- "Gateway Server Tracing"

- "Sample Gateway Server Initialization and Trace Output Files"

## 8.1 TIP Definition Errors

TIP definition errors occur when a TRANSACTION, CALL, or DATA entry in the PG DD is not properly defined.

Use the REPORT with DEBUG statement to list the PG DD contents and GENERATE DIAGNOSE(PKGEX(DR)) option to include corresponding ID numbers in the TIP.

Table 8-1 shows the mnemonic used to represent ID numbers and their correspondence with the following:

- PGAU REPORT with debug listings, GENERATE traces and TIPs

- PG DD tables and columns from which ID numbers are selected

- Oracle sequence objects from which ID numbers originate

Table 8-1 PGDD ID Numbers in Correspondence

PGAU REPORT/TIP | PDGG table(col) | Sequence Object
--- | --- | ---
v# transaction version | pga_trans(version) | pga.transvers
v# call version | pga_call(version) | pga.callvers
v# data version | pga_data(version) | pga.datavers
t# transaction id# | pga_trans(trans#) | pga.transeq
c# call id# | pga_call(call#) pga_call_parm(call#) | pga.callseq
d# data id# | pga_call_parm(data#) pga_data(data#) pga_fields(data#) | pga.dataseq
f# field id# | pga_fields(fld#) | pga.fieldseq
q# qualifier id# | pga_data_values(qual#) | pga.fieldseq
a# trans attribute id# | pga_trans_values(attr#) pga_trans_attr(attr#) | pga.tattrseq
a# field attribute id# | pga_data_values(attr#) pga_data_attr(attr#) | pga.dtattseq
e# environment | pga_environments(env#) | pga.envrseq
l# compiler/language | pga_compilers(comp#) | pga.compseq

These ID numbers can be used to associate the conversions performed in the TIP with the definitions stored in the PG DD.

The PG DD diagnostic references appear in TIPs generated with the PKGEX(DR) option as single line Comments:

    -- PG DD type idno=nnn ...

The PG DD diagnostic references appear in REPORT with DEBUG listings before or to the right of their related definition entry as end-delimited Comments:

    /* idno=nnn */

Refer to Appendix A, "Procedural Gateway for APPC Data Dictionary" for more information about PG DD, including a complete list of dictionary tables.

## 8.2 Problem Analysis with PG DD Diagnostic References

TIPs should be generated by the PGAU GENERATE command with the PKGEX(DR) diagnostic option, to include PG DD reference Comments in the TIP. These diagnostic references are Comments only and do not affect the runtime overhead of the TIP. Refer to Section 2.6.9, "GENERATE" in Chapter 2, "Procedural Gateway Administration Utility" for a description of the PKGEX (DR) parameter.

1. Before defining the PL/SQL package, identify the transaction name, ID number (t#), and version (v#) from the TIP specification within the TIP.

2. Invoke PGAU REPORT WITH DEBUG specifying the same transaction name and version.

   REPORT selects definitions from the PG DD and produces a listing showing the DATA, CALL, and TRANSACTION definitions and the ID number of each user-supplied definition.

3. Compare the reported definitions with those used in the remote transaction program and identify all corresponding exchanges and the data formats transmitted.

4. Look for and investigate any mismatches, such as:

   - different numbers of send/receive calls

   - different sequence of send/receive calls

   - different parameter lists on send/receive calls

   - different data fields within each exchanged parameter

   - different lengths for each exchanged parameter

   - unsupported datatypes for each exchanged parameter

   - improperly initialized control fields for:

     - repeating group counts

       IBMVSCOBOLII affected clauses include

       OCCURS `n` TIMES DEPENDING ON `field`

     - remapped group criteria

       IBMVSCOBOLII affected clauses include

       REDEFINES `field1` WHEN `field2` = criteria

## 8.3 Problem Analysis with PG DD Select Scripts

PGAU GENERATE error messages and TRACE(OC) entries reference SQL SELECT statements. Refer to Table 8-2 for the meaning of the name designations for each entry.

Table 8-2 Meaning of TRACE(OC) Output

Name | Entry
--- | ---
SED | Select Environment Data
STL | Select Transaction (latest version)
STV | Select Transaction (specific version)
STC | Select Transaction Calls
SPD | Select Parameter Data
SF | Select Fields
SFA | Select Field Attributes
SXF | Select conversion Formats
SXA | Select Attribute conversions

The SQL*Plus test scripts in Table 8-3 are provided to perform the identical SELECTS as GENERATE performs to determine which PG DD rows are being used when the TIP is generated. These files are loaded into the `$ORACLE_HOME/pg4appc/admin` directory during installation.

Table 8-3 SQL*Plus Test Scripts and Their Corresponding Entries

Script | Entry
--- | ---
pgddsed.sql | Select Environment Data
pgddstl.sql | Select Transaction (latest version)
pgddstv.sql | Select Transaction (specific version)
pgddstc.sql | Select Transaction Calls
pgddspd.sql | Select Parameter Data
pgddsf.sql | Select Fields
pgddsfa.sql | Select Field Attributes
pgddsxf.sql | Select Conversion Formats
pgddsxa.sql | Select Attribute conversions

The scripts are shown in the same order used by GENERATE and each script prompts the SQL*Plus user for the required input. The information retrieved from a previous select is often used as input to a subsequent select. If a you suspect that a PG DD field entry has produced inaccurate data, browse the `.sql` files listed above to determine the source of the problem. These files are loaded into the `$ORACLE_HOME/pg4appc/admin` directory during installation.

## 8.4 Data Conversion Errors

Data conversion errors are usually the result of:

- incorrect determination of datatype

  or

- incorrect specification of data position.

PGAU determination of the datatype is based on the values found in the PG DD, pga_fields(mask), and pga_fields(maskopts) columns. PGAU generates PL/SQL code to perform conversions based on the mask value:

- PIC X converted to CHAR with the same character length

- PIC G converted to CHAR with the same character length

- PIC 9 converted to NUMBER

Character datatype is presumed for all PIC X and PIC G mask values and conversion errors are more likely the result of position, length, and justification errors.

Determination of numeric datatype depends on several factors, including the combination of mask and maskopts values and how they apply to the actual remote host data in its internal format. Values for mask, maskopts, and data might conflict in unexpected ways. For example, an option such as USAGE IS COMP might be overridden if the data is in display format. While compilers occasionally perform such overrides correctly, they can cause unexpected results when exchanging data with systems coded in other languages.

To notify the user of such overrides, a warning function has been included in the following UTL_PG functions:

- MAKE _NUMBER_TO_RAW_FORMAT

- MAKE_RAW_TO_NUMBER_FORMAT

- NUMBER_TO_RAW

- RAW_TO_NUMBER

## 8.5 Problem Analysis of Data Conversion and Truncation Errors

Procedural Gateway for APPC data lengths are limited by PL/SQL to 32,763 bytes per APPC exchange and PL/SQL variable.

The following steps can be used to diagnose data conversion or truncation errors.

Refer to Chapter 3, "Creating a TIP" to review the proper values and definitions referenced in the following items 0 through 4:

1. Ensure that the COBOL definitions used in the RHT match the input to PGAU;

2. Ensure the RHT transmission buffers are of sufficient length;

3. If your gateway uses SNA: Ensure the RHT APPC call addresses the correct transmission buffer and uses the correct data length;

   If your gateway uses TCP/IP: Ensure the RHT I/O PCB call addresses the correct transmission buffer and uses the correct data length

4. Ensure the client application has declared the correct TIP datatypes used as arguments in the TIP calls.

5. Ensure that the client application is calling the TIP functions in the proper sequence (init, user-defined..., term), and that any input data to the RHT is correct. Also ensure that if multiple user-defined functions exist, they are being called in the proper sequence and passed the correct input values, if any.

   DBMS_OUTPUT calls can be inserted in the client application to trace its behavior.

   For more information about calling TIP functions in proper sequence, refer to the chapter on configuring the Oracle Integrating Server for first time installations, in the Oracle Procedural Gateway for APPC Installation and Configuration Guide.

6. Optionally, regenerate the TIP with diagnostic traces included and enable them. The following traces are particularly useful:

   - data conversion trace

   - function entry/exit trace

   - gateway exchange trace

   Refer to "Problem Analysis with TIP Runtime Traces" for more information about traces; refer also to GENERATE in Chapter 2, "Procedural Gateway Administration Utility".

   Note that the output of the trace is different for a gateway using SNA than for a gateway using TCP/IP. However, the method of invoking the trace is the same regardless of which communication protocol you are using.

   The gateway server tracing must also be enabled in `$ORACLE_HOME/pg4appc/admin/init` `sid``.ora`. Set the parameters SET TRACE_LEVEL=255 and `SET LOG_DESTINATION=/oracle/pga/10.2/pg4appc/log`

   Refer to "Gateway Server Tracing" in this guide for more information about tracing.

   - If your gateway is using SNA: Refer to Appendix A, "Gateway Initialization Parameters for SNA Protocol" in your Oracle Procedural Gateway for APPC Installation and Configuration Guide for more information about these parameters;

   - If your gateway is using TCP/IP: Refer to Appendix B, "Gateway Initialization Parameters for TCP/IP Communications Protocol" in your Oracle Procedural Gateway for APPC Installation and Configuration Guide for more information about these parameters.

   Rerun the client application and examine the trace (see the next step for details).

   To disable the trace, reset

   SET TRACE_LEVEL=0

7. Examine the trace output.

   The TIP trace output can be saved in a spool file, such as:

       spool tipname.trc

   TIP trace output is written to a named DBMS_PIPE and can be retrieved under SQL*Plus by issuing the following command:

       exec rtrace('tipname');

   or it can be purged by issuing the following command:

       exec ptrace('tipname');

   Note: `tipname` is case-sensitive and must be specified exactly as it is in the TIP.

   Gateway server trace output is written to a log file in a default directory path specified by the SET LOG_DESTINATION gateway parameter in `$ORACLE_HOME/pg4appc/admin/init` `sid``.ora`. For example:

       SET LOG_DESTINATION=$ORACLE_HOME/pg4appc/log/

   Refer to "Gateway Server Tracing" for more information.

   The gateway server log file can be viewed be editing the file or by issuing other system commands that display file contents. The log file can also be copied and saved to document problem symptoms.

## 8.6 Problem Analysis with TIP Runtime Traces

TIPs should be generated by the PGAU GENERATE command with the PKGEX(DC) diagnostic option to include TIP data conversion trace logic in the TIP. TIP function call trace logic is always included in every TIP. This is runtime trace instrumentation and has some overhead when tracing is enabled, but negligible overhead when tracing is disabled. Refer to Section 2.6.9, "GENERATE" in Chapter 2, "Procedural Gateway Administration Utility" for more information.

1. Regenerate TIPs with the PKGEX(DC, DR) options and recompile the TIP body file, `tipname.pkb`. Avoid recompiling the TIP specification.

2. Revise the application that calls the TIP initialization function (`tipname`_init) to pass the trace flags parameter with data conversion and function call tracing enabled. Refer to "Controlling TIP Runtime Data Conversion Tracing".

   If the problem causes an exception to be raised in the TIP and the application contains an exception handler, the application exception handler should be Commented out to prevent it from handling the exception and preventing the exception point of origin from being reported. When the TIP exception is next raised, its source line number in the TIP is reported. Record this information.

3. Execute the application with diagnostic TIP initialization.

   If the TIP trace pipe inlet overflows due to the application calls causing the TIP to write trace messages in the TIP trace pipe inlet, you have one minute from the start of the overflow condition to begin Step 4 and empty the TIP trace pipe.

   Otherwise, exception "ORA-20703 PGA-TIP: pipe send error" is issued, ending the diagnostic session, possibly before any relevant trace information is generated.

4. Retrieve and record the TIP trace message stream.

   Use SQL*Plus to connect to the same Oracle user ID executing the application or the user ID under which the TIP is executed. This establishes a second session from which the trace pipe outlet can be read, preventing the TIP trace pipe from overflowing at the TIP trace pipe inlet.

   1. Issue the command:

          set serveroutput on size nnnnn

   2. Issue the command to record the trace output:

          spool tipname.trc

   3. Issue the command to retrieve the trace stream:

          exec rtrace('tipname');

      If the application is long-running, repeat this command as often as needed until all trace messages have been retrieved.

5. If any exceptions are raised, note their prefix, number, and full message text.

6. Analyze the TIP trace message stream. A normal trace is shown for the `pgadb2i` TIP in Appendix G, "Administration Utility Samples".

## 8.7 TIP Runtime Trace Controls

Runtime trace control is the second parameter specified on a TIP initialization call. It is a CHAR(8) datatype of the following form:

    rc := yourtip_init(trannum,'wxyz0000');

Table 8-4 describes the value of positions one to four:

Table 8-4 Values of Positions 1 through 4 on Second Parameter of TIP Call

Item | Description
--- | ---
position 1 (`w`) | controls UTL_RAW warning. A value of 0 suppresses warnings; a value of 1 issues warnings.
position 2 (`x`) | controls the function entry/exit tracing. A value of 0 suppresses the function entry/exit tracing; a value of 1 enables the function entry/exit tracing.
position 3 (`y`) | controls data conversion tracing. A value of 0 suppresses data conversion tracing; a value of 1 enables data conversion tracing.
position 4 (`z`) | controls gateway exchange tracing. A value of 0 suppresses gateway exchange tracing; a value of 1 enables gateway exchange tracing.

Positions 5 through 8 are reserved and ignored.

### 8.7.1 Generating Runtime Data Conversion Trace and Warning Support

Use PGAU to regenerate the TIP and specify the GENERATE parameter DIAGNOSE(PKGEX(DC)). This includes runtime PL/SQL code in the TIP which tests for and displays warnings of correct, but possibly unexpected NUMBER_TO_RAW and RAW_TO_NUMBER conversions.

Refer to Section 2.6.9, "GENERATE" in Chapter 2, "Procedural Gateway Administration Utility" for more information about this parameter.

Recompile the TIP body under SQL*Plus. Avoid recompiling the TIP specification.

### 8.7.2 Controlling TIP Runtime Conversion Warnings

After the TIP has been regenerated, the issuance of runtime warnings is under control of the application. By default, warnings are suppressed and are only issued when they are enabled.

Errors and exceptions are always issued if they occur.

To enable the issuance of warnings, an additional parameter must be supplied when calling the TIP initialization function. This parameter is a CHAR(8) datatype and each character position controls a particular TIP runtime diagnostic function.

To enable warnings in `yourtip`, the client application should call the TIP initialization function with the statement:

    rc := yourtip_init(trannum,'10000000');

The following is input to the TIP trace pipe inlet at initialization time:

    "UTL_PG warnings enabled"

### 8.7.3 Controlling TIP Runtime Function Entry/Exit Tracing

To enable function entry/exit tracing in `yourtip`, the client application should call the TIP initialization function with the statement:

    rc := yourtip_init(trannum,'01000000');

The following is input to the TIP trace pipe inlet at initialization time:

    'function entry/exit trace enabled'
    'tipname_init entered'
    'time date/time stamp'

### 8.7.4 Controlling TIP Runtime Data Conversion Tracing

To enable data conversion tracing in `yourtip`, the client application should call the TIP initialization function with the following statement:

    rc := yourtip_init(trannum,'00100000');

The following is input to the TIP trace pipe inlet at initialization time:

    'data conversion trace enabled'

### 8.7.5 Controlling TIP Runtime Gateway Exchange Tracing

To enable runtime gateway exchange tracing in `yourtip`, the client application should call the TIP initialization function with the following statement:

    rc := yourtip_init(trannum,'00010000');

The following is input to the TIP trace pipe inlet at initialization time:

    'gateway exchange trace enabled'

## 8.8 Suppressing TIP Warnings and Tracing

After debugging is finished, there are two ways to suppress the following:

- data conversion tracing

- conversion warnings

- function entry/exit tracing

- gateway exchange tracing

You can:

1. Call the TIP initialization function without passing any diagnostic control parameters:

       rc := yourtip_init(trannum);

2. Call the TIP initialization function passing a revised diagnostic control parameter which disables all tracing and warnings:

       rc := yourtip_init(trannum,'00000000');

   A third method, described in Method C, removes the logic for:

   - data conversion tracing

   - conversion warnings

3. Generate the TIP again without:

       PKGEX(DC)

Or you can recompile the previous version of the TIP body if it was saved.

Methods A and B allow you to use the same TIP without alteration, but without tracing or warnings. These methods are reversible without alteration or replacement of the TIP. Tracing and warnings can be redisplayed should a problem recur.

Method C also suppresses data conversion tracing and warnings and incurs reduced overhead by avoiding tests, but is not reversible without regenerating the TIP or recompiling an alternate version with data conversion tracing and warning diagnostics imbedded.

The logic for function entry/exit and gateway exchange tracing is included in every TIP and cannot be removed. It can be disabled by method A or B.

## 8.9 Gateway Server Tracing

The gateway contains extensive tracing logic in the gateway remote procedural calls (RPCs), and the APPC-specific code. Tracing is enabled through gateway initialization parameters or dynamic RPC calls to the gateway. The trace provides information about the execution of the gateway RPC functions and about the execution of the APPC interface. The trace file contains a text stream written in chronological sequence of events. The trace is designed to assist application programmers with the debugging of their OLTP transaction programs and Oracle applications that communicate with those transaction programs through the gateway.

A single trace file is created for an entire gateway session from the time the database link is opened until it is closed. The trace can be directed to a specific path/filename or to a path (directory) only. In the first case, the file is overwritten each time a new session begins for the gateway being traced. When the trace target is a directory, a separate file with a generated name (containing the operating system process ID) is written for each gateway session. The latter approach must be used whenever the gateway to be traced might be the target of new sessions after the desired trace is written but before it can be copied and saved. Conversely, in some situations you might choose to create a distinct gateway system identifier used solely for tracing, and direct its trace to a single specific filename. This avoids the problem of an ever-increasing set of trace files when, for example, repeated attempts are necessary to reproduce or debug a problem. A fixed filename should never be used if there is any chance that an unexpected gateway session could overlay a useful trace.

### 8.9.1 Defining the Gateway Trace Destination

This section describes how to define the destination of trace files to the gateway, and how to cause the gateway to create the trace files during initialization. Note that this does not enable any gateway tracing, it merely defines the destination of any trace output produced when the gateway tracing is enabled.

1. Choose a gateway system identifier to trace. Decide whether you will be tracing an existing gateway system identifier or a new one created specifically for tracing. If a new system identifier will be used, configure the new system identifier exactly the same as the old one by creating a new `init` `sid`.`ora` (a copy of the old), entries in `listener.ora` as necessary, and a new Oracle database link.

   Test the new system identifier to ensure it works before proceeding.

2. In `$ORACLE_HOME/pg4appc/admin`, edit the `init` `sid``.ora` file so it contains the following:

       SET TRACE_LEVEL=255
       SET LOG_DESTINATION=logdest

   where `logdest` is the directory path for the trace output. The logfile is usually in `$ORACLE_HOME/pg4appc/log`. Refer to the earlier discussion about "Problem Analysis of Data Conversion and Truncation Errors" for more information.

   Note: Misspelled parameter names in `init` `sid`.`ora` are not detected. The parameter is ignored.

Once these two steps are completed, the gateway opens the specified trace file during initialization. Each session on this system identifier writes a trace file as specified by the SET LOG_DESTINATION parameter described in Step 2 above.

If a directory path was specified, each trace file has a name of the form:

    sid_pid.log

where `sid` is the gateway sid and `pid` is the operating system process ID of the gateway server expressed in decimal.

### 8.9.2 Enabling the Gateway Trace

There are two ways to enable the gateway server tracing. The first is to set the tracing options in the gateway initialization file, `init` `sid``.ora`. The second is to use the additional PGA remote procedural call (RPC) function, PGATCTL, to dynamically control the tracing from within the Oracle application. The first method causes tracing to be performed for all users of the gateway system identifier and is recommended only when the use of the gateway system identifier can be limited to users actually needing the trace. The second method is more flexible and allows the application programmer to selectively trace events on a single gateway session without affecting the operation of other users' gateway sessions.

Before the gateway server trace is enabled, perform the tasks listed in "Defining the Gateway Trace Destination".

#### 8.9.2.1 Enabling the Gateway Trace Using Initialization Parameters

Edit the `init` `sid``.ora` file, and add the following line at the end of the file (or, if a SET TRACE_LEVEL parameter is already specified, modify it):

    SET TRACE_LEVEL=trace

where `trace` is a numeric value from 1 to 255 indicating which traces are to be enabled. For further information on the use of this parameter, refer to "PGA Parameters" in Appendix A of the Oracle Procedural Gateway for APPC Installation and Configuration Guide.

Once this step is completed, tracing is enabled for the desired gateway system identifier.

#### 8.9.2.2 Enabling the Gateway Trace Dynamically from PL/SQL

The following is only needed for user-written TIPs. PGAU-generated TIPs automatically include the following facilities. Refer to "Controlling TIP Runtime Gateway Exchange Tracing" for more information.

Make the following changes to the PL/SQL application that calls the Transaction Interface Package(s) to execute remote transaction(s).

1. Add a call to PGATCTL before any calls to TIP initialization functions are made:

       PGATCTL@dblink(convid,
                      traceF,
                      traceS);

   Where Table 8-5 describes the parameters in PGATCTL:

   Table 8-5 PGATCTL Parameters

   Parameter | Description
   --- | ---
   `dblink` | is the name of the database link to the gateway
   `convid` | For a gateway using SNA: Conversation identifier returned by the PGAINIT function to be used to identify the conversation. For a gateway using TCP/IP: Socket file descriptor returned by the PGAINIT function to be used to identify the conversation
   `traceF` | is the trace control function to be performed.
   `traceS` | specifies which traces are to be enabled, as described previously in the discussion of the SET TRACE_LEVEL initialization parameter.

   This call sets the trace flags for all new conversations started after the call to the value specified by `traceS`.

2. Recompile the PL/SQL application to pick up the new trace call.

## 8.10 Sample Gateway Server Initialization and Trace Output Files

The following sections provide sample output files for a gateway using either the SNA communications protocol or TCP/IP support for IMS Connect.

### 8.10.1 Sample Trace Output File for Gateway Using SNA

The following is an example of the t race output produced by a gateway server using the SNA communications protocol, where:

- the TRACE_LEVEL parameter is set to 255

- the gateway sid is PGA10IAPPC

- the Oracle home directory is `/oracle/pga/10.2`

- the PGA_CAPABILITY parameter is set to SINGLE_SITE

- the gateway server was invoked by an Oracle Net database link from another system.

    HGAINIT: entered.
          : LOG_DESTINATION => /oracle/pga/10.2/log/PGA10IAPPC_12845.log
          : TRACE_LEVEL => 255
          ORACLE_HOME: /oracle/pga/10.2,  LEN <43>, MAX_LEN <256>.
          ORACLE_SID: PGA10IAPPC,  LEN <10>, MAX_LEN <256>.
          FDS_CLASS: PG4APPC_1001,  LEN <12>, MAX_LEN <30>.
          FDS_INSTANCE: PGA,  LEN <3>, MAX_LEN <256>.
          FDS_CLASS_VERSION: 3,  LEN <1>, MAX_LEN <30>.
           : PGA_CAPABILITY = SINGLE_SITE
    HGAINIT: exiting, rc = 0
    HGALGON: entered.
           : reco    = 0
           : namel   = 8
           : name    = PGAADMIN
           : passwdl = 8
           : passwd  = pgaadmin
           : gpau is at 153188
           : PGA_CAPABILITY = SINGLE_SITE
           : up->gpaucap = 1
           : up->gpauflg = 00
           : PGA_SECURITY_TYPE = NONE
    SGTAINI: entered.
    SGTAINI: exiting,  rc = 0
    HGALGON: exiting, rc = 0
    HGAUPLC: entered.
    HGAUPLC: exiting,  rc = 0
    HGAUPLD: entered.
    HGAUPLD: exiting,  rc = 0
    HGABEGN: entered, hgagt = ffbec0ec
    HGABEGN: exiting, rc =  <0>
    HGAPDSC: entered.
    HGAPFND: entered.
    HGAPFND: exit - procedure 'PGAXFER' was found
    HGAPDSC: exiting, rc =  <0>
    HGAPDSC: entered.
    HGAPFND: entered.
    HGAPFND: exit - procedure 'PGAINIT' was found
    HGAPDSC: exiting, rc =  <0>
    HGAPDSC: entered.
    HGAPFND: entered.
    HGAPFND: exit - procedure 'PGATCTL' was found
    HGAPDSC: exiting, rc =  <0>
    HGAPDSC: entered.
    HGAPFND: entered.
    HGAPFND: exit - procedure 'PGATERM' was found
    HGAPDSC: exiting, rc =  <0>
    HGACOMM: entered, keepinfo = 0
    HGACOMM: exiting, rc = 0
    HGABEGN: entered, hgagt = ffbec0ec
    HGABEGN: exiting, rc =  <0>
    HGAPEXE: entered.
    HGAPFND: entered.
    HGAPFND: exit - procedure 'PGAINIT' was found
    GPACINI: entered.
    GPACLOC: executed
    GPACLOC: exit, rc = 0
    PGAINIT: TP name      = 'IVTNO'
    PGAINIT: LU name      = ''
    PGAINIT: Mode name    = 'ORAPLU62'
    PGAINIT: Profile name = 'IMSPGA'
    PGAINIT: Sync level   = 0
    PGAINIT: Userid       = PGAADMIN
    PGAINIT: passwd       = pgaadmin
    GPACAEC: entered
    GPACAEC: exiting, rc = 0
        GPAC allocated at 188294
    SGPAALL: entered.
        SGPA allocated at 188b30
        CMINIT issued: profile = IMSPGA
        CMINIT complete: rc = 0, errno = 11
        CMEPLN issued
        CMEPLN complete: rc = 0, errno = 11, luname = IMSPGA
        CMSTPN issued: tpname = IVTNO
        CMSTPN complete: rc = 0, errno = 11
        CMSMN issued: modename = ORAPLU62
        CMSMN complete: rc = 0, errno = 11
        XCSCST issued: security type = 0
        XCSCST complete: rc = 0, errno = 11
        CMSSL issued: synclevel = 0
        CMSSL complete: rc = 0, errno = 11
        CMSPTR issued: type = 1
        CMSPTR complete: rc = 0, errno = 11
        CMALLC issued
        CMALLC complete: rc = 0, errno = 11
    SGPAALL: exiting, rc = 0
    GPACAEC: entered
    GPACAEC: exiting, rc = 0
    PGAINIT: Conversation id - @ 18839c
      0000:  00000001 01000000 00000000         *............*............*
    GPACINI: exiting rc = <0>
    HGAPEXE: exiting, rc =  <0>
    HGAPEXE: entered.
    HGAPFND: entered.
    HGAPFND: exit - procedure 'PGAXFER' was found
    GPACXFR: entered
    GPACLOC: executed
    GPACLOC: exit, rc = 0
        GPAU found at 153188
        GPAC found at 188294
        sbufsz = 49
        rbufsz = 32763
        slensz = 8
        rlensz = 8
    PGAXFER: Conversation id - @ 187ddc
      0000:  00000001 01000000 00000000         *............*............*
    PGAXFER: Send buffer length = 49
    PGAXFER: Receive buffer length = 89
    PGAXFER: Send lengths array - @ 187d6c
      0000:  00000001 00000031                  *.......1*........*
    PGAXFER: Receive lengths array - @ 1ac528
      0000:  00000001 00000059                  *.......Y*........*
    PGAXFER: Send buffer - @ 187d9c
      0000:  40404040 C4C9E2D7 D3C1E840 9381A2A3 *@@@@.......@....*    DISPLAY last*
      0010:  F1404040 40404040 40404040 40404040 *.@@@@@@@@@@@@@@@*1               *
      0020:  40404040 40404040 40404040 40404040 *@@@@@@@@@@@@@@@@*                *
      0030:  40                                 *@* *
    GPACAEC: entered
    GPACAEC: exiting, rc = 0
        sends = 1
        receives = 1
        slens[1] = 49
    SGPASND: entered, type = 2
    SGPARTS: entered, deal = 0
    SGPARTS: exiting, rc = 0, deal = 0.
        CMSST issued: send type = 3
        CMSST complete: rc = 0, errno = 11
    Sending data: - @ 187d9c
      0000:  40404040 C4C9E2D7 D3C1E840 9381A2A3 *@@@@.......@....*    DISPLAY last*
      0010:  F1404040 40404040 40404040 40404040 *.@@@@@@@@@@@@@@@*1               *
      0020:  40404040 40404040 40404040 40404040 *@@@@@@@@@@@@@@@@*                *
      0030:  40                                 *@* *
        CMSEND issued: length = 49
        CMSEND complete: rc = 0, errno = 11, rts = 0
    SGPASND: exiting, rc = 0
        rlens[1] = 89
    SGPARCV: entered.
        CMECS issued
        CMECS complete: rc = 0, errno = 11, state = 4
        CMRCV issued: length = -4276988
        CMRCV complete: rc = 0, errno = 11, rts = 0, dr = 2, sr = 0, length = 89
    Received data: - @ 1a38e8
      0000:  C5D5E3D9 E840E6C1 E240C4C9 E2D7D3C1 *.....@...@......*ENTRY WAS DISPLA*
      0010:  E8C5C440 40404040 40404040 40404040 *...@@@@@@@@@@@@@*YED             *
      0020:  40404040 40404040 C4C9E2D7 D3C1E840 *@@@@@@@@.......@*        DISPLAY *
      0030:  D3C1E2E3 F1404040 4040C6C9 D9E2E3F1 *.....@@@@@......*LAST1     FIRST1*
      0040:  40404040 F860F1F1 F160F1F1 F1F1C4F0 *@@@@.`...`......*    8-111-1111D0*
      0050:  F161D9F0 F1F0F0F0 F1               *.a.......*1/R010001*
        conversation state is now RECEIVE
    SGPARCV: exiting, rc = 0
    PGAXFER: Receive buffer length = 89
    PGAXFER: Receive lengths array - @ 1ac528
      0000:  00000001 00000059                  *.......Y*........*
    PGAXFER: Receive buffer - @ 1a38e8
      0000:  C5D5E3D9 E840E6C1 E240C4C9 E2D7D3C1 *.....@...@......*ENTRY WAS DISPLA*
      0010:  E8C5C440 40404040 40404040 40404040 *...@@@@@@@@@@@@@*YED             *
      0020:  40404040 40404040 C4C9E2D7 D3C1E840 *@@@@@@@@.......@*        DISPLAY *
      0030:  D3C1E2E3 F1404040 4040C6C9 D9E2E3F1 *.....@@@@@......*LAST1     FIRST1*
      0040:  40404040 F860F1F1 F160F1F1 F1F1C4F0 *@@@@.`...`......*    8-111-1111D0*
      0050:  F161D9F0 F1F0F0F0 F1               *.a.......*1/R010001*
    GPACAEC: entered
    GPACAEC: exiting, rc = 0
    GPACXFR: exiting rc = <0>
    HGAPEXE: exiting, rc =  <0>
    HGAPEXE: entered.
    HGAPFND: entered.
    HGAPFND: exit - procedure 'PGATERM' was found
    GPACTRM: entered
    GPACLOC: executed
    GPACLOC: exit, rc = 0
        GPAU found at 153188
        GPAC found at 188294
    PGATERM: Conversation id - @ ffbebf04
      0000:  00000001 01000000 00000000         *............*............*
    PGATERM: Termination type = 0
    GPACAEC: entered
    GPACAEC: exiting, rc = 0
    SGPADEA: entered, type = 0
    SGPARTS: entered, deal = 1
        CMRTS issued
        CMRTS complete: rc = 0, errno = 11
        CMRCV issued: length = 0
        CMRCV complete: rc = 18, errno = 11, rts = 0, dr = 0, sr = 0, length = 0
        conversation state is now RECEIVE
    SGPARTS: exiting, rc = 0, deal = 1.
    SGPADEA: exiting, rc = 0
        cp  = 188294
        cpp = 0
        cpn = 0
        up->gpaucpt = 0
        freed gpac at 188294
    GPACTRM: exiting.
    HGAPEXE: exiting, rc =  <0>
    HGACOMM: entered, keepinfo = 0
    HGACOMM: exiting, rc = 0
    HGABEGN: entered, hgagt = ffbec0ec
    HGABEGN: exiting, rc =  <0>
    HGAPDSC: entered.
    HGAPFND: entered.
    HGAPFND: exit - procedure 'PGAXFER' was found
    HGAPDSC: exiting, rc =  <0>
    HGADAFR: entered.
    HGADAFR: exit <0>
    HGAPDSC: entered.
    HGAPFND: entered.
    HGAPFND: exit - procedure 'PGAINIT' was found
    HGAPDSC: exiting, rc =  <0>
    HGADAFR: entered.
    HGADAFR: exit <0>
    HGAPDSC: entered.
    HGAPFND: entered.
    HGAPFND: exit - procedure 'PGATCTL' was found
    HGAPDSC: exiting, rc =  <0>
    HGADAFR: entered.
    HGADAFR: exit <0>
    HGAPDSC: entered.
    HGAPFND: entered.
    HGAPFND: exit - procedure 'PGATERM' was found
    HGAPDSC: exiting, rc =  <0>
    HGADAFR: entered.
    HGADAFR: exit <0>
    HGACOMM: entered, keepinfo = 0
    HGACOMM: exiting, rc = 0
    HGABEGN: entered, hgagt = ffbec0ec
    HGABEGN: exiting, rc =  <0>
    HGAPEXE: entered.
    HGAPFND: entered.
    HGAPFND: exit - procedure 'PGAINIT' was found
    GPACINI: entered.
    GPACLOC: executed
    GPACLOC: exit, rc = 0
    GPACAEC: entered
    GPACAEC: exiting, rc = 0
    GPACXFR: exiting rc = <0>
    HGAPEXE: exiting, rc =  <0>
    HGAPEXE: entered.
    HGAPFND: entered.
    HGAPFND: exit - procedure 'PGATERM' was found
    GPACTRM: entered
    GPACLOC: executed
    GPACLOC: exit, rc = 0
        GPAU found at 153188
        GPAC found at 190a0c
    PGATERM: Conversation id - @ ffbebf04
      0000:  00000002 01000001 00000000         *............*............*
    PGATERM: Termination type = 0
    GPACAEC: entered
    GPACAEC: exiting, rc = 0
    SGPADEA: entered, type = 0
    SGPARTS: entered, deal = 1
        CMRTS issued
        CMRTS complete: rc = 0, errno = 11
        CMRCV issued: length = 0
        CMRCV complete: rc = 18, errno = 11, rts = 0, dr = 0, sr = 0, length = 0
        conversation state is now RECEIVE
    SGPARTS: exiting, rc = 0, deal = 1.
    SGPADEA: exiting, rc = 0
        cp  = 190a0c
        cpp = 0
        cpn = 0
        up->gpaucpt = 0
        freed gpac at 190a0c
    GPACTRM: exiting.
    HGAPEXE: exiting, rc =  <0>
    HGACOMM: entered, keepinfo = 0
    HGACOMM: exiting, rc = 0
    HGADAFR: entered.
    HGADAFR: exit <0>
    HGADAFR: entered.
    HGADAFR: exit <0>
    HGADAFR: entered.
    HGADAFR: exit <0>
    HGADAFR: entered.
    HGADAFR: exit <0>
    HGALGOF: entered.
    HGALGOF: exiting,  rc = 0
    HGAEXIT: entered.
    HGAEXIT: exiting, rc = 0

### 8.10.2 Sample Trace Output File for Gateway Using TCP/IP

The following is an example of the trace output produced by a gateway server using the TCP/IP communication protocol, where:

- the TRACE_LEVEL parameter is set to 255

- the gateway `sid` is PGA10IA

- the Oracle home directory is `/oracle/pga/10.2`.

- the PGA_CAPABILITY parameter is set to SINGLE_SITE

- the gateway server was invoked by an Oracle Net database link from another system.

    HGTINIT: entered.
    pg4appc Version 10.2.0
          : LOG_DESTINATION => /oracle/pga/10.2/pg4appc/log/PGA10IA_12703.log
          : TRACE_LEVEL => 255
          ORACLE_HOME: /oracle/pga/10.2,  LEN <43>, MAX_LEN <256>.
          ORACLE_SID: PGA10IA,  LEN <7>, MAX_LEN <256>.
          FDS_CLASS: PG4APPC_1001,  LEN <12>, MAX_LEN <30>.
          FDS_INSTANCE: PGA,  LEN <3>, MAX_LEN <256>.
          FDS_CLASS_VERSION: 3,  LEN <1>, MAX_LEN <30>.
           : HGT_CAPABILITY = SINGLE_SITE
    HGTINIT: exiting, rc = 0
    HGTLGON: entered.
           : reco    = 0
           : namel   = 8
           : name    = PGAADMIN
           : passwdl = 8
           : passwd  = pgaadmin
           : hgtlHgtUserP is at 153990
           : HGT_CAPABILITY = SINGLE_SITE
           : hgtlHgtUserP->hgtUCap = 1
           : hgtlHgtUserP->hgtTCap = SINGLE_SITE
           : HGT_SECURITY_TYPE = PROGRAM
           : hgtlHgtUserP->hgtUSec = 2
           : PGA_TCP_USER = pgaadmin
           : PGA_TCP_PASS = pgaadmin
           : PGA_TCP_DB = R901
    HGTLGON: exiting, rc = 0
    HGTUPLC: entered.
    HGTUPLC: exiting,  rc = 0
    HGTUPLD: entered.
    HGTUPLD: exiting,  rc = 0.
    HGTBEGN: entered, hgtgt = ffbec0ec
    HGTBEGN: exiting, rc =  <0>
    HGTPDSC: entered.
    HGTPFND: entered.
    HGTPFND: exit - procedure 'PGAINIT' was found.
    HGTPDSC: exiting, rc =  <0>
    HGTPDSC: entered.
    HGTPFND: entered.
    HGTPFND: exit - procedure 'PGAXFER' was found.
    HGTPDSC: exiting, rc =  <0>
    HGTPDSC: entered.
    HGTPFND: entered.
    HGTPFND: exit - procedure 'PGATERM' was found.
    HGTPDSC: exiting, rc =  <0>
    HGTCOMM: entered, keepinfo = 0
    HGTCOMM: exiting, rc = 0
    HGTBEGN: entered, hgtgt = ffbec0ec
    HGTBEGN: exiting, rc =  <0>
    HGTPEXE: entered.
    HGTPFND: entered.
    HGTPFND: exit - procedure 'PGAINIT' was found.
    GPTINI: entered.
          TPName is FLIP
          LUName is
          LogModeName is
          SidePorfileName is IMSPGA
          Uid PGAADMIN.
          Pass PGAADMIN.
    gptOciLgon: entered
        OCIEnvCreate, rc = 0
        OCIHandleAlloc -- ERROR,  rc = 0
        Allocation a server context handle, rc = 0
        Allocation a service context handle, rc = 0
        Allocation a user handle, rc = 0
        OCIHandleAlloc -- STMT  rc = 0
        Create a server context, rc = 0
        Set svr. attr. in the svc. sess. handle, rc = 0
        Set usr. attr. in the usr. sess. handle, rc = 0
        Set pswd. attr. in the usr. sess. handle, rc = 0
        OCISessionBegin, rc = 0
        set usr. sess. in the svc. context handle, rc 0
    gptOciLgon Exit  -- RC = 0.
    gptOciSelStmt: entered.
        OCIStmtPrepare
        The select statment is:
        SELECT HOSTNAME,PORTNUMBER,ANDRS,TIMER,SOCK,CLIENTID,
               COMMITMODE,IMSDESTID,LTERM,RACFGRPNAM
            FROM PGA_TCP_IMSC
            WHERE SIDEPROFILENAME ='IMSPGA'
        OCIStmtPrepare, rc = 0
        Defining output variable HostName.
        OCIDefineByPos for  HostName, rc = 0
        Defining output variable Port Number.
        OCIDefineByPos for  Port Number, rc = 0
        Defining output variable ANDRS.
        OCIDefineByPos for  ANDRS, rc = 0
        Defining output variable Timer.
        OCIDefineByPos for  Timer, rc = 0
        Defining output variable Socket
        OCIDefineByPos for  Socket, rc = 0
        Defining output variable Client ID.
        OCIDefineByPos for  Client ID, rc = 0
        Defining output variable Commit Mode.
        OCIDefineByPos for Commit Mode, rc = 0
        Defining output variable IMS Destination ID.
        OCIDefineByPos for  IMS Destination ID, rc = 0
        Defining output variable LTERM
        OCIDefineByPos for LTERM, rc = 0
        Defining output RACF Group Name.
        OCIDefineByPos for RACF Group Name, rc = 0
        OCIStmtExecute complete, rc = 0
        Host Name = 'MVS08.US.ORACLE.COM', LEN = 19
        Port Number = '9900', LEN = 4
        conversation protocol = ' ', LEN = 1
        IRM Timer = 'D', LEN = 1
        socket connection type = 'T', LEN = 1
        client ID = '        ', LEN = 8
        commit mode = '1', LEN = 1
        IMS destination ID = 'IMSE    ', LEN = 8
        LTERM = '        ', LEN = 8
        RACF group name = '$DEV    ', LEN = 8
    gptOciSelStmt Exit  -- RC = 0.
    gptOciLgof: entered.
        OCISessionEnd, rc = 0
        OCIServerDetach, rc = 0
        OCIHandleFree -- Error, rc = 0
        OCIHandleFree -- SERVER, rc = 0
        OCIHandleFree -- SVCCTX, rc = 0
        OCIHandleFree -- SESSION, rc = 0
         OCIHandleFree -- STMT, rc = 0
    gptOciLgof Exit  -- RC = 0.
           Host is MVS08.US.ORACLE.COM
           Port is 9900
           CID->num = 10.
    GPTIINI Exit  -- RC = 0.
    HGTPEXE: exiting, rc =  <0>.
    HGTPEXE: entered.
    HGTPFND: entered.
    HGTPFND: exit - procedure 'PGAXFER' was found.
    GPTXFR: entered.
           CID->num = 10.
           Beginning of Send Series.
           The length for 'send total msg len' is 102.
           The RC for 'send total msg len' is 4.
           The RC for 'send (IRM_LEN) LL' is 2.
           The RC for 'send (IRM_RSV) ZZ'  is 2.
           The RC for length for 'send identifier' is 8.
           The RC for 'Reserved full word 0' is 4.
           The RC for '(IRM_F5)' is 1.
           The RC for '(IRM_TIMER)' is 1.
           The RC for '(IRM_SOCK)' is 1.
           The RC for '(IRM_ES)' is 1.
           The RC for 'Client ID' is 8.
           The RC for 'FLG 1' is 1.
           The RC for 'commit mode' is 1.
           The RC for 'sync level' is 1.
           The RC for 'Conversational Protocol' is 1.
           The RC for 'transaction code' is 8.
           The RC for 'datastore ID' is 8.
           The RC for 'LTERM' is 8.
           The RC for 'RACF User ID' is 8.
           The RC for 'RACF group name' is 8.
           The RC for 'RACF password' is 8.
           The RC for 'send LL'  is 2.
           The RC for 'send ZZ'  is 2.
           The RC for 'transaction code'  is 5.
           The RC for 'send segment(buffer)' is 5.
           The len of buffer is 5.
           The Actual Sent Buffer - @ 184d8c
      0000:  68656C6C 6F                        *hello*..%%?*
           Send final LL ZZ.
           Signal no more data to IMS Connect.
           The length for 'send LL'  is 2.
           The RC for 'send ZZ'  is 2.
           End of send.
           The RC for 'read total len' is 2.
           The RC for 'Read ZZ' is 2.
           The RC for 'Read received buffer' is 9.
    The Received Buffer - @ ffbdbd04
      0000:  4F4C4C45 48                        *OLLEH*|<<..*
    GPTXFR Exit  -- RC = 0.
    HGTPEXE: entered.
    HGTPFND: entered.
    HGTPFND: exit - procedure 'PGAXFER' was found.
    GPTXFR: entered.
           CID->num = 10.
           Beginning of Send Series.
           The length for 'send total msg len' is 147.
           The RC for 'send total msg len' is 4.
           The RC for 'send (IRM_LEN) LL' is 2.
           The RC for 'send (IRM_RSV) ZZ'  is 2.
           The RC for length for 'send identifier' is 8.
           The RC for 'Reserved full word 0' is 4.
           The RC for '(IRM_F5)' is 1.
           The RC for '(IRM_TIMER)' is 1.
           The RC for '(IRM_SOCK)' is 1.
           The RC for '(IRM_ES)' is 1.
           The RC for 'Client ID' is 8.
           The RC for 'FLG 1' is 1.
           The RC for 'commit mode' is 1.
           The RC for 'sync level' is 1.
           The RC for 'Conversational Protocol' is 1.
           The RC for 'transaction code' is 8.
           The RC for 'datastore ID' is 8.
           The RC for 'LTERM' is 8.
           The RC for 'RACF User ID' is 8.
           The RC for 'RACF group name' is 8.
           The RC for 'RACF password' is 8.
           The RC for 'send LL'  is 2.
           The RC for 'send ZZ'  is 2.
           The RC for 'transaction code'  is 6.
           The RC for 'send segment(buffer)' is 49.
           The len of buffer is 49.
           The Actual Sent Buffer - @ 1846e8
      0000:  20202020 44495350 4C415920 6C617374 *    DISPLAY last*.......&<...%/..*
      0010:  31202020 20202020 20202020 20202020 *1               *................*
      0020:  20202020 20202020 20202020 20202020 *                *................*
      0030:  20                                 * *.*
           Send final LL ZZ.
           Signal no more data to IMS Connect.
           The length for 'send LL'  is 2.
           The RC for 'send ZZ'  is 2.
           End of send.
           The RC for 'read total len' is 2.
           The RC for 'Read ZZ' is 2.
           The RC for 'Read received buffer' is 93.
    The Received Buffer - @ ffbdbd04
      0000:  454E5452 59205741 53204449 53504C41 *ENTRY WAS DISPLA*.+...........&<.*
      0010:  59454420 20202020 20202020 20202020 *YED             *................*
      0020:  20202020 20202020 44495350 4C415920 *        DISPLAY *...........&<...*
      0030:  4C415354 31202020 20204649 52535431 *LAST1     FIRST1*<...............*
      0040:  20202020 382D3131 312D3131 31314430 *    8-111-1111D0*................*
      0050:  312F5230 31303030 31               *1/R010001*.........*
    GPTXFR Exit  -- RC = 0.
    HGTPEXE: exiting, rc =  <0>.
    HGTPEXE: entered.
    HGTPFND: entered.
    HGTPFND: exit - procedure 'PGATERM' was found.
    GPTTRM: entered.
           CID->num = 10.
           close socket returns: 0.
    GPTTRM Exit  -- RC = 0.
    HGTPEXE: exiting, rc =  <0>.
    HGTCOMM: entered, keepinfo = 0
    HGTCOMM: exiting, rc = 0
    HGTDAFR: entered.
    HGTDAFR: exit <0>.
    HGTDAFR: entered.
    HGTDAFR: exit <0>.
    HGTDAFR: entered.
    HGTDAFR: exit <0>.
    HGTDAFR: entered.
    HGTDAFR: exit <0>.
    HGTLGOF: entered.
    HGTLGOF: exiting,  rc = 0.
    HGTEXIT: entered.
    HGTEXIT: exiting, rc = 0.

### 8.10.3 Sample Output Log for pg4tcpmap Tool

The following is an example of the trace output produced by the pg4tcpmap tool, where:

- the TRACE_LEVEL parameter is set to 255;

- ORACLE_SID is set to PGA10IA;

- the ORACLE_HOME log directory is `/oracle/pga/10.2/pg4appc/log`, and

- the ORACLE_HOME directory is `/oracle/pga/10.2`

    GPMGPRD Entered.
         LOG_DESTINATION  => /oracle/pga/10.2/pg4appc/log
         TRACE_LEVEL  => 255
         ORACLE_HOME  => /oracle/pga/10.2
         ORACLE_SID  => PGA10IA
         PGA_TCP_USER  => pgaadmin
         PGA_TCP_USER Len  => 8
         PGA_TCP_PASS  => pgaadmin
         PGA_TCP_PASS Len  => 8
         PGA_TCP_DB  => R901
         PGA_TCP_DB  Len => 4
    GPMGPRD Exit.
    GPMEQ Entered.
         The value => i
    GPMEQ Exit  -- RC = 0.
    GPMEDETAILS Entered.
         Has chosen Side Profile.
    gpmeTcpUniNameInput Entered.
         TCP_UNI_NAME => IMSPRF.
         TCP_UNI_NAME Len => 6.
    gpmeTcpUniNameInput Exit -- RC = 0.
    gpmeHostNameInput Entered.
         HOSTNAME => MVS08.US.MYCOMP.COM.
         HOSTNAME Len => 19.
    gpmeHostNameInput Exit -- RC = 0.
    gpmePortNumberInput Entered.
         PORT_NUMBER => 688.
         PORT_NUMBER Len => 3.
    gpmePortNumberInput Exit -- RC = 0.
    gpmeANDRS Entered.
         A/N/D/R/S =>  .
    gpmeANDRSInput Exit -- RC = 0.
    gpmeTimerInput Entered.
         Timer => D.
    gpmeTimerInput Exit -- RC = 0.
    gpmeSockInput Entered.
         Socket => T.
    gpmeSockInput Exit -- RC = 0.
    gpmeClientIDInput Entered.
         CLIENT ID =>         .
         CLIENT ID Len => 8.
    gpmeClientIDInput Exit -- RC = 0.
    gpmeCommModeInput Entered.
         Commit Mode => 1.
    gpmeSockInput Exit -- RC = 0.
    gpmeDatastoreInput Entered.
         IMS Destination ID => IMSA    .
         IMS Destination ID Len => 4.
    gpmeDatastoreInput Exit -- RC = 0.
    gpmeLTermInput Entered.
         IMS LTERM  =>         .
         IMS LTERM Len => 8.
    gpmeLTermInput Exit -- RC = 0.
    gpmRACFGrpInput Entered.
         RACF Group Name =>         .
         RACF Group Name Len => 8.
    gpmRACFGrpInput Exit -- RC = 0.
    GPMEDETAILS Exit -- RC = 0.
    gpmlOci Entered.
    gpmlOciLgon Entered.
         OCIInitialize, rc = 0
         OCIEnvInit, rc = 0
         OCIHandleAlloc -- STMT  rc = 0
         OCIHandleAlloc -- ERROR,  rc = 0
         logon complete, rc = 0
    gpmlOciLgon Exit  -- RC = 0.
    gpmlOciIns Entered.
         Host Name, or IP Address ==> 'MVS08.US.MYCOMP.COM', LEN = 19
         Port Number ==> '688', LEN = 3
         Conversational Protocol ==> ' ', LEN = 1
         IRM Timer ==> 'D', LEN = 1
         IRM Socket ==> 'T', LEN = 1
         Client ID ==> '        ', LEN = 8
         Commit Mode ==> '1', LEN = 1
         IMS Data Store ==> 'IMSA    ', LEN = 8
         IMS LTERM ==> '        ', LEN = 8
         RACF Group Name ==> '        ', LEN = 8
    SideProfile or TCP Unique Name ==> IMSPRF, LEN = 6
    The insert statement is:
    INSERT INTO PGA_TCP_IMSC(SideProfileName,
    HostName,                                         PortNumber,
    ANDRS,                                         TIMER,
    SOCK,                                         CLIENTID,
    COMMITMODE,                                         IMSDESTID,
    LTERM,                                         RACFGRPNAM)                VALUES
    ('IMSPRF','MVS08.US.MYCOMP.COM','688',' ','D','T',                        '
    ','1','IMSA    ','        ','        ')
        OCIStmtPrepare, rc = 0
        OCIStmtExecute, rc = 0
    gpmlOciIns Exit  -- RC = 0.
    gpmlOciLgof Entered.
        logoff, rc = 0
         OCIHandleFree -- STMT, rc = 0
         OCIHandleFree -- Error, rc = 0
    gpmlOciLgof Exit  -- RC = 0.
    gpmlOci Exit  -- RC = 0.
    gpmePrintData Entered.
         Requested to INSERT a row.
         Side Profile name is IMSPRF.
         remote host name is MVS08.US.MYCOMP.COM.
         IMS Connect port number is 688.
         LU name is .
         LogMode name is .
         TP name is .
         conversational protocol is  .
         Timer is D.
         socket connection type is T.
         client ID is         .
         commit mode is 1.
         Datastore name (IMS destination ID) is IMSA    .
         IMS LTERM override is         .
         RACF group name is         .
    gpmePrintData Exit -- RC = 0.
    Main Exit  -- RC = 0.